In one aspect, the present disclosure relates generally to a system and method for managing software configurations. More specifically, the present disclosure relates to a system and method for managing configurations of software for industrial control systems.
Industrial control systems are used in a variety of control applications, such as manufacturing and materials handling. An industrial control system typically employs several industrial controllers and computers. Typically, the industrial controller is in communication with several devices such as networked control devices, overload relays, network expanders, sensors and other input devices, and an interface for integrating additional components.
Each industrial controller component of the industrial control system performs specific functions for controlling various devices, such as motors, valves, actuators, and so forth, depending upon the particular application. Typically, an industrial controller has various modules such as a central controller, a memory, and a communications device. The central controller of an industrial controller typically executes program files associated with the various devices that are in communication with the industrial controller. The communications device facilitates communication, over one or more communication lines, with the various devices that are controlled by the industrial controller. Examples of communication modules include, without limitation, Ethernet controllers, DeviceNet controllers, ControlNet controllers, FireWire controllers, FieldBus controllers, among others. The memory stores data used for controlling the associated devices.
Algorithms associated with the executable program files associated with the various devices that are in communication with the industrial controller are generally compiled and downloaded to the industrial controller in a single file structure. Conventional techniques for managing such executable program files include applications to enable copying monolithic algorithms into a single controller file as generic objects, automatically configuring parameters within a file in a proprietary programming language, and storing multiple algorithm versions. Once the single file structure (monolithic algorithm) is created and stored, however, conventional techniques for managing executable program files do not enable modifications to the single file structure. Accordingly, such conventional techniques do not enable the application of options, variants, and parameters to the executable program files and do not enable the underlying algorithms to be reconfigured in a nested structure. Furthermore, conventional techniques for managing executable program files for industrial control systems do not enable relationship, versioning, and configuration management of the modified file structures.